package me.timlong;

public class Fabnacci {

    /**
     *
     * 题目描述
     * 大家都知道斐波那契数列，现在要求输入一个整数n，请你输出斐波那契数列的第n项（从0开始，第0项为0）。
     * n<=39
     *
     */
    public int Fibonacci(int n) {

        if(n <= 1)
            return n;
        else return Fibonacci(n - 1) + Fibonacci(n - 2);


    }

    /**
     * 优化递归方案， 使用数组进行存储
     * @param n
     * @return
     */
    public int fibonacci(int n){

        int ans[] = new int[40];

        ans[0] = 0;
        ans[1] = 1;

        for(int i = 2; i <= n; i++)
            ans[i] = ans[i - 1] + ans[i -2];

        return ans[n];
    }

    public static void main(String[] args) {
        System.out.println(new Fabnacci().fibonacci(4));
    }


}
